<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    let fn = (a, b) => {
      return a + b
    }
    // 调用函数
    let result = fn(1, 2)
    console.log(result)

    // 箭头函数的简写
    // 1. 如果函数体只有一行代码，可以省略大括号
    let fn2 = (a, b) => a + b
    console.log(fn2(1, 2))


    // 2. 如果函数体只有一行代码，并且需要返回值，可以省略return关键字
    let fn3 = (a, b) => ({ a, b })
    console.log(fn3(1, 2))  // 返回的就是对象  {a: 1, b: 2}


    // 3. 如果只有一个参数，可以省略小括号
    let fn4 = a => a
    console.log(fn4(1))


    // 4. 如果没有参数，小括号不能省略
    let fn5 = () => 1
    console.log(fn5())

    // 5. 如果函数体有多行代码，需要用大括号包裹，并且需要return
    let fn6 = (a, b) => {
      console.log(a)
      console.log(b)
      return a + b
    }
    console.log(fn6(1, 2))

    // 6. 箭头函数没有arguments对象
    let fn7 = () => {
      // console.log(arguments)    // 控制台报错 arguments is not defined
    }
    fn7(1, 2)

  </script>
</body>

</html>